<!-- HTML header for doxygen 1.11.0-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.11.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: Frequently Asked Questions</title>
<link rel="icon" href="doxygen.ico" type="image/x-icon" />
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen_manual.css" rel="stylesheet" type="text/css"/>
<link href="extra.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectlogo"><a href="../index.html"><img alt="Logo" src="doxygen_logo.svg" height="35px"/></a></td>
  <td class="menu-item"><a href="index.html">Docs</a></td>
  <td class="menu-item"><a href="changelog.html">Changelog</a></td>
  <td class="menu-item"><a href="../helpers.html">Extensions</a></td>
  <td class="menu-item"><a href="../examples.html">Examples</a></td>
  <td class="menu-spacer">&#160;</td>
  <td class="menu-item" id="download">
      <img class="download-icon" src="../assets/download.svg" width="16px" height="16px" alt="Download doxygen"/>
      <a href="../download.html">Download</a>
  </td>
  <td class="menu-item" id="donate">
     <form action="https://www.paypal.com/cgi-bin/webscr" method="post" class="nav-item d-inline-flex px-1 mx-1">
       <input type="hidden" name="cmd" value="_donations" />
       <input type="hidden" value="doxygen@gmail.com" name="business" />
       <input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHosted" />
       <input type="hidden" name="lc" value="US" />
       <input type="hidden" name="tax" value="0" />
       <input type="hidden" name="item_name" value="Doxygen donation" />
       <input type="hidden" name="no_shipping" value="1" />
       <table class="donate">
         <tr>
           <td class="donate-button"><input type="image" width="74" height="21"
               src="https://www.paypal.com/en_GB/i/btn/btn_donate_SM.gif" border="0" name="submit"
               alt="Donate to Doxygen with PayPal!" /></td>
         </tr>
         <tr>
           <td class="currency"><select size="1" name="currency_code">
               <option selected="selected" value="EUR">&euro; (EUR)</option>
               <option value="USD">$ (USD)</option>
             </select></td>
         </tr>
       </table>
     </form>
   </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.11.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
     <div id="nav-tree-ads-carbon">
       <script async type="text/javascript" src="https://cdn.carbonads.com/carbon.js?serve=CK7DTK3M&placement=stacknl" id="_carbonads_js"></script>
     </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('faq.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<div><div class="header">
  <div class="headertitle"><div class="title">Frequently Asked Questions</div></div>
</div><!--header-->
<div class="contents">
<div class="toc"><h3>Table of Contents</h3>
<ul><li class="level1"><a href="faq.html#faq_index">How to get information on the index page in HTML?</a></li>
<li class="level1"><a href="faq.html#fac_al">Help, some/all of the members of my class / file / namespace are not documented?</a></li>
<li class="level1"><a href="faq.html#faq_extract_all">When I set EXTRACT_ALL to NO none of my functions are shown in the documentation.</a></li>
<li class="level1"><a href="faq.html#faq_ext_mapping">My file with a custom extension is not parsed (properly) (anymore).</a></li>
<li class="level1"><a href="faq.html#faq_code">How can I make doxygen ignore some code fragment?</a></li>
<li class="level1"><a href="faq.html#faq_code_inc">How can I change what is after the \#include in the class documentation?</a></li>
<li class="level1"><a href="faq.html#faq_chm">How can I use tag files in combination with compressed HTML?</a></li>
<li class="level1"><a href="faq.html#faq_html">I don&#39;t like the quick index that is put above each HTML page, what do I do?</a></li>
<li class="level1"><a href="faq.html#faq_html_header">The overall HTML output looks different, while I only wanted to use my own html header file</a></li>
<li class="level1"><a href="faq.html#faq_use_qt">Why does doxygen use Qt?</a></li>
<li class="level1"><a href="faq.html#faq_excl_dir">How can I exclude all test directories from my directory tree?</a></li>
<li class="level1"><a href="faq.html#faq_class">Doxygen automatically generates a link to the class MyClass somewhere in the running text.  How do I prevent that at a certain place?</a></li>
<li class="level1"><a href="faq.html#faq_pgm_X">My favorite programming language is X. Can I still use doxygen?</a></li>
<li class="level1"><a href="faq.html#faq_lex">Help! I get the cryptic message &quot;input buffer overflow, can&#39;t enlarge buffer because scanner uses REJECT&quot;</a></li>
<li class="level1"><a href="faq.html#faq_latex">When running make in the latex directory I get &quot;TeX capacity exceeded&quot;. Now what?</a></li>
<li class="level1"><a href="faq.html#faq_stl">Why are dependencies via STL classes not shown in the dot graphs?</a></li>
<li class="level1"><a href="faq.html#faq_search">I have problems getting the search engine to work with PHP5 and/or windows</a></li>
<li class="level1"><a href="faq.html#faq_cmdline">Can I configure doxygen from the command line?</a></li>
<li class="level1"><a href="faq.html#faq_name">How did doxygen get its name?</a></li>
<li class="level1"><a href="faq.html#faq_why">What was the reason to develop doxygen?</a></li>
<li class="level1"><a href="faq.html#faq_bin">How to prevent interleaved output</a></li>
</ul>
</div>
<div class="textblock"><h1><a class="anchor" id="faq_index"></a>
How to get information on the index page in HTML?</h1>
<p>You should use the <a class="el" href="commands.html#cmdmainpage">\mainpage</a> command inside a comment block like this: </p><pre class="fragment">/*! \mainpage My Personal Index Page
 *
 * \section intro_sec Introduction
 *
 * This is the introduction.
 *
 * \section install_sec Installation
 *
 * \subsection step1 Step 1: Opening the box
 *
 * etc...
 */
</pre><h1><a class="anchor" id="fac_al"></a>
Help, some/all of the members of my class / file / namespace are not documented?</h1>
<p>Check the following: </p><ol>
<li>
Is your class / file / namespace documented? If not, it will not be extracted from the sources unless <a class="el" href="config.html#cfg_extract_all">EXTRACT_ALL</a> is set to <code>YES</code> in the configuration file. </li>
<li>
Are the members private? If so, you must set <a class="el" href="config.html#cfg_extract_private">EXTRACT_PRIVATE</a> to <code>YES</code> to make them appear in the documentation. </li>
<li>
<p class="startli">Is there a function macro in your class that does not end with a semicolon (e.g. MY_MACRO())? If so then you have to instruct doxygen's preprocessor to remove it.</p>
<p class="interli">This typically boils down to the following settings in the configuration file:</p>
<pre class="fragment">ENABLE_PREPROCESSING   = YES
MACRO_EXPANSION        = YES
EXPAND_ONLY_PREDEF     = YES
PREDEFINED             = MY_MACRO()=</pre><p class="endli">Please read the <a class="el" href="preprocessing.html">preprocessing</a> section of the manual for more information. </p>
</li>
</ol>
<h1><a class="anchor" id="faq_extract_all"></a>
When I set EXTRACT_ALL to NO none of my functions are shown in the documentation.</h1>
<p>In order for global functions, variables, enums, typedefs, and defines to be documented you should document the file in which these commands are located using a comment block containing a <a class="el" href="commands.html#cmdfile">\file</a> (or <a class="el" href="commands.html#cmdfile">@file</a>) command.</p>
<p>Alternatively, you can put all members in a group (or topic) using the <a class="el" href="commands.html#cmdingroup">\ingroup</a> command and then document the group using a comment block containing the <a class="el" href="commands.html#cmddefgroup">\defgroup</a> command.</p>
<p>For member functions or functions that are part of a namespace you should document either the class or namespace.</p>
<h1><a class="anchor" id="faq_ext_mapping"></a>
My file with a custom extension is not parsed (properly) (anymore).</h1>
<p>Doxygen only parses files that are specified as input (via the <a class="el" href="config.html#cfg_input">INPUT</a> tag) and that match a specified extension (mentioned in <a class="el" href="config.html#cfg_file_patterns">FILE_PATTERNS</a>) The list of files is then reduced by excluding files listed as <a class="el" href="config.html#cfg_exclude">EXCLUDE</a> or files that match the patterns set by <a class="el" href="config.html#cfg_exclude_patterns">EXCLUDE_PATTERNS</a>.</p>
<p>In the past doxygen parsed all files with an unknown extension as C files which could lead to undesired results. Since version 1.8.8, doxygen requires that you specify a mapping that tells for a certain file extension, which parser to use. This mapping is specified using the <a class="el" href="config.html#cfg_extension_mapping">EXTENSION_MAPPING</a> tag. If no mapping is specified the file's contents will be ignored.</p>
<h1><a class="anchor" id="faq_code"></a>
How can I make doxygen ignore some code fragment?</h1>
<p>The new and easiest way is to add one comment block with a <a class="el" href="commands.html#cmdcond">\cond</a> command at the start and one comment block with a <a class="el" href="commands.html#cmdendcond">\endcond</a> command at the end of the piece of code that should be ignored. This should be within the same file of course.</p>
<p>But you can also use doxygen's preprocessor for this: If you put </p><pre class="fragment">#ifndef DOXYGEN_SHOULD_SKIP_THIS

 /* code that must be skipped by doxygen */

#endif /* DOXYGEN_SHOULD_SKIP_THIS */
</pre><p> around the blocks that should be hidden and put: </p><pre class="fragment">  PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS
</pre><p> in the configuration file then all blocks should be skipped by doxygen as long as <a class="el" href="config.html#cfg_enable_preprocessing">ENABLE_PREPROCESSING</a> is set to <code>YES</code>.</p>
<h1><a class="anchor" id="faq_code_inc"></a>
How can I change what is after the #include in the class documentation?</h1>
<p>In most cases you can use <a class="el" href="config.html#cfg_strip_from_inc_path">STRIP_FROM_INC_PATH</a> to strip a user defined part of a path.</p>
<p>You can also document your class as follows</p>
<pre class="fragment">/*! \class MyClassName include.h path/include.h
 *
 *  Docs for MyClassName
 */
</pre><p>To make doxygen put <br  />
<br  />
 <code> #include &lt;path/include.h&gt; </code></p>
<p>in the documentation of the class MyClassName regardless of the name of the actual header file in which the definition of MyClassName is contained.</p>
<p>If you want doxygen to show that the include file should be included using quotes instead of angle brackets you should type: </p><pre class="fragment">/*! \class MyClassName myhdr.h "path/myhdr.h"
 *
 *  Docs for MyClassName
 */
</pre><h1><a class="anchor" id="faq_chm"></a>
How can I use tag files in combination with compressed HTML?</h1>
<p>If you want to refer from one compressed HTML file <code>a.chm</code> to another compressed HTML file called <code>b.chm</code>, the link in <code>a.chm</code> must have the following format: </p><pre class="fragment">&lt;a href="mk:@MSITStore:b.chm::/file.html"&gt;
</pre><p> Unfortunately this only works if both compressed HTML files are in the same directory.</p>
<p>As a result you must rename the generated <code>index.chm</code> files for all projects into something unique and put all <code>.chm</code> files in one directory.</p>
<p>Suppose you have a project <em>a</em> referring to a project <em>b</em> using tag file <code>b.tag</code>, then you could rename the <code>index.chm</code> for project <em>a</em> into <code>a.chm</code> and the <code>index.chm</code> for project <em>b</em> into <code>b.chm</code>. In the configuration file for project <em>a</em> you write: </p><pre class="fragment">TAGFILES = b.tag=mk:@MSITStore:b.chm::
</pre><h1><a class="anchor" id="faq_html"></a>
I don't like the quick index that is put above each HTML page, what do I do?</h1>
<p>You can disable the index by setting <a class="el" href="config.html#cfg_disable_index">DISABLE_INDEX</a> to <code>YES</code>. Then you can put in your own header file by writing your own header and feed that to <a class="el" href="config.html#cfg_html_header">HTML_HEADER</a>.</p>
<h1><a class="anchor" id="faq_html_header"></a>
The overall HTML output looks different, while I only wanted to use my own html header file</h1>
<p>You probably forgot to include the stylesheet <code>doxygen.css</code> that doxygen generates. You can include this by putting </p><pre class="fragment">&lt;LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"&gt;
</pre><p> in the HEAD section of the HTML page.</p>
<h1><a class="anchor" id="faq_use_qt"></a>
Why does doxygen use Qt?</h1>
<p>In the past (prior to version 1.9.2) doxygen used a part of Qt 2.x for various utility classes. These have been replaced by STL container classes in the meantime.</p>
<p>The GUI front-end called Doxywizard is based on a modern version of Qt. Doxygen itself can also be used without the GUI.</p>
<h1><a class="anchor" id="faq_excl_dir"></a>
How can I exclude all test directories from my directory tree?</h1>
<p>Simply put an exclude pattern like this in the configuration file:</p>
<pre class="fragment">EXCLUDE_PATTERNS = */test/*
</pre><h1><a class="anchor" id="faq_class"></a>
Doxygen automatically generates a link to the class MyClass somewhere in the running text. How do I prevent that at a certain place?</h1>
<p>Put a % in front of the class name. Like this: %MyClass. Doxygen will then remove the % and keep the word unlinked.</p>
<h1><a class="anchor" id="faq_pgm_X"></a>
My favorite programming language is X. Can I still use doxygen?</h1>
<p>No, not as such; doxygen needs to understand the structure of what it reads. If you don't mind spending some time on it, there are several options:</p><ul>
<li>If the grammar of X is close to C or C++, then it is probably not too hard to tweak <code>src/scanner.l</code> a bit so the language is supported. This is done for all other languages directly supported by doxygen (i.e. Java, IDL, C#, PHP).</li>
<li>If the grammar of X is somewhat different than you can write an input filter that translates X into something similar enough to C/C++ for doxygen to understand (this approach is taken for VB, Object Pascal, and JavaScript, see <a href="https://www.doxygen.org/helpers.html">https://www.doxygen.org/helpers.html</a>).</li>
<li>If the grammar is completely different one could write a parser for X and write a backend that produces a similar syntax tree as is done by <code>src/scanner.l</code> (and also by <code>src/tagreader.cpp</code> while reading tag files).</li>
</ul>
<h1><a class="anchor" id="faq_lex"></a>
Help! I get the cryptic message "input buffer overflow, can't enlarge buffer because scanner uses REJECT"</h1>
<p>This error happens when doxygen's lexical scanner has a rule that matches more than 256K of input characters in one go. I've seen this happening on a very large generated file (&gt;256K lines), where the built-in preprocessor converted it into an empty file (with &gt;256K of newlines). Another case where this might happen is if you have lines in your code with more than 256K characters.</p>
<p>If you have run into such a case and want me to fix it, you should send me a code fragment that triggers the message. To work around the problem, put some line-breaks into your file, split it up into smaller parts, or exclude it from the input using EXCLUDE.</p>
<p>Another way to work around this problem is to use the cmake command with the option: </p><div class="fragment"><div class="line">-Denlarge_lex_buffers=&lt;size&gt;</div>
</div><!-- fragment --><p> where <code>&lt;size&gt;</code> is the new size of the input (<code>YY_BUF_SIZE</code>) and read (<code>YY_READ_BUF_SIZE</code>) buffer. In case this option is not given the default value of 262144 (i.e. 256K) will be used.</p>
<h1><a class="anchor" id="faq_latex"></a>
When running make in the latex directory I get "TeX capacity exceeded". Now what?</h1>
<p>You can edit the texmf.cfg file to increase the default values of the various buffers and then run "texconfig init".</p>
<h1><a class="anchor" id="faq_stl"></a>
Why are dependencies via STL classes not shown in the dot graphs?</h1>
<p>Doxygen is unaware of the STL classes, unless the option <a class="el" href="config.html#cfg_builtin_stl_support">BUILTIN_STL_SUPPORT</a> is turned on.</p>
<h1><a class="anchor" id="faq_search"></a>
I have problems getting the search engine to work with PHP5 and/or windows</h1>
<p>Please read <a href="searching.html">this</a> for hints on where to look.</p>
<h1><a class="anchor" id="faq_cmdline"></a>
Can I configure doxygen from the command line?</h1>
<p>Not via command line options, but doxygen can read from <code>stdin</code>, so you can pipe things through it. Here's an example how to override an option in a configuration file from the command line (assuming a UNIX like environment):</p>
<pre class="fragment">( cat Doxyfile ; echo "PROJECT_NUMBER=1.0" ) | doxygen -
</pre><p>For Windows command line the following would do the same:</p>
<pre class="fragment">( type Doxyfile &amp; echo PROJECT_NUMBER=1.0 ) | doxygen.exe -
</pre><p>For Windows Powershell (checked with version 5.1) the following would do the same: </p><pre class="fragment">&amp;{ type Doxyfile ; echo "PROJECT_NUMBER=1.0" } | doxygen -
</pre><p>If multiple options with the same name are specified then doxygen will use the last one. To append to an existing option you can use the += operator.</p>
<h1><a class="anchor" id="faq_name"></a>
How did doxygen get its name?</h1>
<p>Doxygen got its name from playing with the words documentation and generator.</p>
<pre class="fragment">documentation -&gt; docs -&gt; dox
generator -&gt; gen
</pre><p>At the time I was looking into <code>lex</code> and <code>yacc</code>, where a lot of things start with "yy", so the "y" slipped in and made things pronounceable (the proper pronouncement is Docs-ee-gen, so with a long "e").</p>
<h1><a class="anchor" id="faq_why"></a>
What was the reason to develop doxygen?</h1>
<p>I once wrote a GUI widget based on the Qt library (it is still available at <a href="https://sourceforge.net/projects/qdbttabular/">https://sourceforge.net/projects/qdbttabular/</a> but hasn't been updated since 2002). Qt had nicely generated documentation (using an internal tool which <a href="https://rant.gulbrandsen.priv.no/udoc/history">they didn't want to release</a>) and I wrote similar docs by hand. This was a nightmare to maintain, so I wanted a similar tool. I looked at Doc++ but that just wasn't good enough (it didn't support signals and slots and did not have the Qt look and feel I had grown to like), so I started to write my own tool...</p>
<h1><a class="anchor" id="faq_bin"></a>
How to prevent interleaved output</h1>
<p>When redirecting all the console output of doxygen, i.e. messages and warnings, this can be interleaved or in a non-expected order. The, technical, reason for this is that the <code>stdout</code> can be buffered. It is possible to overcome this by means of the <code>-b</code> of doxygen, like e.g <code>doxygen -b &gt; out.txt 2&gt;&amp;1</code>. Note this might cost a little more time though.</p>
<p> 
Go to the <a href="trouble.html">next</a> section or return to the
 <a href="index.html">index</a>.
 </p>
</div></div><!-- contents -->
</div><!-- PageDoc -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.11.0 </li>
  </ul>
</div>
</body>
</html>
